/****************************************************************************
 * sram.v
 ****************************************************************************/

/**
 * Module: sram
 * 
 * 参数化sram
 */
`timescale 1ns / 10ps

module sram_t
#(
		parameter ADDR_WIDTH	= 2,
		parameter DATA_WIDTH	= 2
)
(	
		input							wr,
		input							rst,
		input							clk,
		input		[ADDR_WIDTH-1 : 0]	addr,
		input		[DATA_WIDTH-1 : 0]	din,
		output	[DATA_WIDTH-1 : 0]   dout
);
	
	reg		[DATA_WIDTH-1 : 0]	mem[0 : 2**ADDR_WIDTH-1];
	
	always @(posedge clk)
		if(rst == 1'b0)
		begin
			mem[addr] <= 'b0;
		end
		else 
		begin
			if(wr == 1'b1) 
			begin
				mem[addr] <= din;
			end
			else;
		end
		
	assign dout = mem[addr];
	
endmodule
